/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.aaron.platform.service;

import com.aaron.platform.dao.PageInfo;
import com.aaron.platform.entity.WlbMotorBook;
import com.aaron.platform.entity.WlbMotorInfo;
import com.aaron.platform.exceptions.MotorBookExistsException;
import com.aaron.platform.exceptions.MotorInfoExistsException;
import java.util.List;
import java.util.Properties;

/**
 *
 * @author aaronbamboo
 */
public interface IMotorInfoMgr {
    
    /** 
     * 通过ID查询车辆信息
     * @param motorId 车辆ID
     * @return 车辆信息
     */
    public WlbMotorInfo findById(Integer motorId);
    
     /**
     * 条件查询（分页）,无预约信息
     * @param condition
     * @param pageInfo
     * @return
     */
    public PageInfo findByCondition(Properties condition, int startIndex, int pageSize);
    
    /**
     * 条件查询（分页）,有预约信息
     * @param condition
     * @param pageInfo
     * @return
     */
    public PageInfo findByConditionWithBooks(Properties condition, int startIndex, int pageSize);
    
    /**
     * 添加工程信息
     * @param WlbMotorInfo 车辆信息
     */
    public void addMotorInfo(WlbMotorInfo wlbMotorInfo) throws MotorInfoExistsException;
    
    /**
     * 更新工程信息
     * @param WlbMotorInfo 车辆信息
     */
    public void updateMotorInfo(WlbMotorInfo wlbMotorInfo) throws MotorInfoExistsException;
    
    /**
     * 删除工程信息，级联删除使用记录
     * @param motorId 车辆ID
     */
    public void removeMotorInfo(Integer motorId);
    
    /**
     * 添加预约信息
     * @param motorBook 预约信息
     * @throws MotorBookExistsException 已被预约 
     */
    public void addBookInfo(WlbMotorBook motorBook) throws MotorBookExistsException;
    
    /**
     * 更新预约信息
     * @param motorBook 预约信息
     * @throws MotorBookExistsException 
     */
    public void updateBookInfo(WlbMotorBook motorBook) throws MotorBookExistsException;
    
    /**
     * 删除预约信息
     * @param bookId 预约ID 
     */
    public void removeBookInfo(Integer bookId);
    
    /**
     * 查询预约信息
     * @param condition
     * @return 
     */
    public List<WlbMotorBook> findBooksByCondition(Properties condition);
   
}
